package com.pgybook.db.entity.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class EmaiLintEx {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public EmaiLintEx() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andEmailidIsNull() {
            addCriterion("EMAILID is null");
            return (Criteria) this;
        }

        public Criteria andEmailidIsNotNull() {
            addCriterion("EMAILID is not null");
            return (Criteria) this;
        }

        public Criteria andEmailidEqualTo(Long value) {
            addCriterion("EMAILID =", value, "emailid");
            return (Criteria) this;
        }

        public Criteria andEmailidNotEqualTo(Long value) {
            addCriterion("EMAILID <>", value, "emailid");
            return (Criteria) this;
        }

        public Criteria andEmailidGreaterThan(Long value) {
            addCriterion("EMAILID >", value, "emailid");
            return (Criteria) this;
        }

        public Criteria andEmailidGreaterThanOrEqualTo(Long value) {
            addCriterion("EMAILID >=", value, "emailid");
            return (Criteria) this;
        }

        public Criteria andEmailidLessThan(Long value) {
            addCriterion("EMAILID <", value, "emailid");
            return (Criteria) this;
        }

        public Criteria andEmailidLessThanOrEqualTo(Long value) {
            addCriterion("EMAILID <=", value, "emailid");
            return (Criteria) this;
        }

        public Criteria andEmailidIn(List<Long> values) {
            addCriterion("EMAILID in", values, "emailid");
            return (Criteria) this;
        }

        public Criteria andEmailidNotIn(List<Long> values) {
            addCriterion("EMAILID not in", values, "emailid");
            return (Criteria) this;
        }

        public Criteria andEmailidBetween(Long value1, Long value2) {
            addCriterion("EMAILID between", value1, value2, "emailid");
            return (Criteria) this;
        }

        public Criteria andEmailidNotBetween(Long value1, Long value2) {
            addCriterion("EMAILID not between", value1, value2, "emailid");
            return (Criteria) this;
        }

        public Criteria andEmailtypeIsNull() {
            addCriterion("EMAILTYPE is null");
            return (Criteria) this;
        }

        public Criteria andEmailtypeIsNotNull() {
            addCriterion("EMAILTYPE is not null");
            return (Criteria) this;
        }

        public Criteria andEmailtypeEqualTo(Integer value) {
            addCriterion("EMAILTYPE =", value, "emailtype");
            return (Criteria) this;
        }

        public Criteria andEmailtypeNotEqualTo(Integer value) {
            addCriterion("EMAILTYPE <>", value, "emailtype");
            return (Criteria) this;
        }

        public Criteria andEmailtypeGreaterThan(Integer value) {
            addCriterion("EMAILTYPE >", value, "emailtype");
            return (Criteria) this;
        }

        public Criteria andEmailtypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("EMAILTYPE >=", value, "emailtype");
            return (Criteria) this;
        }

        public Criteria andEmailtypeLessThan(Integer value) {
            addCriterion("EMAILTYPE <", value, "emailtype");
            return (Criteria) this;
        }

        public Criteria andEmailtypeLessThanOrEqualTo(Integer value) {
            addCriterion("EMAILTYPE <=", value, "emailtype");
            return (Criteria) this;
        }

        public Criteria andEmailtypeIn(List<Integer> values) {
            addCriterion("EMAILTYPE in", values, "emailtype");
            return (Criteria) this;
        }

        public Criteria andEmailtypeNotIn(List<Integer> values) {
            addCriterion("EMAILTYPE not in", values, "emailtype");
            return (Criteria) this;
        }

        public Criteria andEmailtypeBetween(Integer value1, Integer value2) {
            addCriterion("EMAILTYPE between", value1, value2, "emailtype");
            return (Criteria) this;
        }

        public Criteria andEmailtypeNotBetween(Integer value1, Integer value2) {
            addCriterion("EMAILTYPE not between", value1, value2, "emailtype");
            return (Criteria) this;
        }

        public Criteria andCustidIsNull() {
            addCriterion("CUSTID is null");
            return (Criteria) this;
        }

        public Criteria andCustidIsNotNull() {
            addCriterion("CUSTID is not null");
            return (Criteria) this;
        }

        public Criteria andCustidEqualTo(Long value) {
            addCriterion("CUSTID =", value, "custid");
            return (Criteria) this;
        }

        public Criteria andCustidNotEqualTo(Long value) {
            addCriterion("CUSTID <>", value, "custid");
            return (Criteria) this;
        }

        public Criteria andCustidGreaterThan(Long value) {
            addCriterion("CUSTID >", value, "custid");
            return (Criteria) this;
        }

        public Criteria andCustidGreaterThanOrEqualTo(Long value) {
            addCriterion("CUSTID >=", value, "custid");
            return (Criteria) this;
        }

        public Criteria andCustidLessThan(Long value) {
            addCriterion("CUSTID <", value, "custid");
            return (Criteria) this;
        }

        public Criteria andCustidLessThanOrEqualTo(Long value) {
            addCriterion("CUSTID <=", value, "custid");
            return (Criteria) this;
        }

        public Criteria andCustidIn(List<Long> values) {
            addCriterion("CUSTID in", values, "custid");
            return (Criteria) this;
        }

        public Criteria andCustidNotIn(List<Long> values) {
            addCriterion("CUSTID not in", values, "custid");
            return (Criteria) this;
        }

        public Criteria andCustidBetween(Long value1, Long value2) {
            addCriterion("CUSTID between", value1, value2, "custid");
            return (Criteria) this;
        }

        public Criteria andCustidNotBetween(Long value1, Long value2) {
            addCriterion("CUSTID not between", value1, value2, "custid");
            return (Criteria) this;
        }

        public Criteria andSubjectIsNull() {
            addCriterion("SUBJECT is null");
            return (Criteria) this;
        }

        public Criteria andSubjectIsNotNull() {
            addCriterion("SUBJECT is not null");
            return (Criteria) this;
        }

        public Criteria andSubjectEqualTo(String value) {
            addCriterion("SUBJECT =", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectNotEqualTo(String value) {
            addCriterion("SUBJECT <>", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectGreaterThan(String value) {
            addCriterion("SUBJECT >", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectGreaterThanOrEqualTo(String value) {
            addCriterion("SUBJECT >=", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectLessThan(String value) {
            addCriterion("SUBJECT <", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectLessThanOrEqualTo(String value) {
            addCriterion("SUBJECT <=", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectLike(String value) {
            addCriterion("SUBJECT like", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectNotLike(String value) {
            addCriterion("SUBJECT not like", value, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectIn(List<String> values) {
            addCriterion("SUBJECT in", values, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectNotIn(List<String> values) {
            addCriterion("SUBJECT not in", values, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectBetween(String value1, String value2) {
            addCriterion("SUBJECT between", value1, value2, "subject");
            return (Criteria) this;
        }

        public Criteria andSubjectNotBetween(String value1, String value2) {
            addCriterion("SUBJECT not between", value1, value2, "subject");
            return (Criteria) this;
        }

        public Criteria andIshtmlIsNull() {
            addCriterion("ISHTML is null");
            return (Criteria) this;
        }

        public Criteria andIshtmlIsNotNull() {
            addCriterion("ISHTML is not null");
            return (Criteria) this;
        }

        public Criteria andIshtmlEqualTo(Integer value) {
            addCriterion("ISHTML =", value, "ishtml");
            return (Criteria) this;
        }

        public Criteria andIshtmlNotEqualTo(Integer value) {
            addCriterion("ISHTML <>", value, "ishtml");
            return (Criteria) this;
        }

        public Criteria andIshtmlGreaterThan(Integer value) {
            addCriterion("ISHTML >", value, "ishtml");
            return (Criteria) this;
        }

        public Criteria andIshtmlGreaterThanOrEqualTo(Integer value) {
            addCriterion("ISHTML >=", value, "ishtml");
            return (Criteria) this;
        }

        public Criteria andIshtmlLessThan(Integer value) {
            addCriterion("ISHTML <", value, "ishtml");
            return (Criteria) this;
        }

        public Criteria andIshtmlLessThanOrEqualTo(Integer value) {
            addCriterion("ISHTML <=", value, "ishtml");
            return (Criteria) this;
        }

        public Criteria andIshtmlIn(List<Integer> values) {
            addCriterion("ISHTML in", values, "ishtml");
            return (Criteria) this;
        }

        public Criteria andIshtmlNotIn(List<Integer> values) {
            addCriterion("ISHTML not in", values, "ishtml");
            return (Criteria) this;
        }

        public Criteria andIshtmlBetween(Integer value1, Integer value2) {
            addCriterion("ISHTML between", value1, value2, "ishtml");
            return (Criteria) this;
        }

        public Criteria andIshtmlNotBetween(Integer value1, Integer value2) {
            addCriterion("ISHTML not between", value1, value2, "ishtml");
            return (Criteria) this;
        }

        public Criteria andBodyIsNull() {
            addCriterion("BODY is null");
            return (Criteria) this;
        }

        public Criteria andBodyIsNotNull() {
            addCriterion("BODY is not null");
            return (Criteria) this;
        }

        public Criteria andBodyEqualTo(String value) {
            addCriterion("BODY =", value, "body");
            return (Criteria) this;
        }

        public Criteria andBodyNotEqualTo(String value) {
            addCriterion("BODY <>", value, "body");
            return (Criteria) this;
        }

        public Criteria andBodyGreaterThan(String value) {
            addCriterion("BODY >", value, "body");
            return (Criteria) this;
        }

        public Criteria andBodyGreaterThanOrEqualTo(String value) {
            addCriterion("BODY >=", value, "body");
            return (Criteria) this;
        }

        public Criteria andBodyLessThan(String value) {
            addCriterion("BODY <", value, "body");
            return (Criteria) this;
        }

        public Criteria andBodyLessThanOrEqualTo(String value) {
            addCriterion("BODY <=", value, "body");
            return (Criteria) this;
        }

        public Criteria andBodyLike(String value) {
            addCriterion("BODY like", value, "body");
            return (Criteria) this;
        }

        public Criteria andBodyNotLike(String value) {
            addCriterion("BODY not like", value, "body");
            return (Criteria) this;
        }

        public Criteria andBodyIn(List<String> values) {
            addCriterion("BODY in", values, "body");
            return (Criteria) this;
        }

        public Criteria andBodyNotIn(List<String> values) {
            addCriterion("BODY not in", values, "body");
            return (Criteria) this;
        }

        public Criteria andBodyBetween(String value1, String value2) {
            addCriterion("BODY between", value1, value2, "body");
            return (Criteria) this;
        }

        public Criteria andBodyNotBetween(String value1, String value2) {
            addCriterion("BODY not between", value1, value2, "body");
            return (Criteria) this;
        }

        public Criteria andCrttimeIsNull() {
            addCriterion("CRTTIME is null");
            return (Criteria) this;
        }

        public Criteria andCrttimeIsNotNull() {
            addCriterion("CRTTIME is not null");
            return (Criteria) this;
        }

        public Criteria andCrttimeEqualTo(Date value) {
            addCriterion("CRTTIME =", value, "crttime");
            return (Criteria) this;
        }

        public Criteria andCrttimeNotEqualTo(Date value) {
            addCriterion("CRTTIME <>", value, "crttime");
            return (Criteria) this;
        }

        public Criteria andCrttimeGreaterThan(Date value) {
            addCriterion("CRTTIME >", value, "crttime");
            return (Criteria) this;
        }

        public Criteria andCrttimeGreaterThanOrEqualTo(Date value) {
            addCriterion("CRTTIME >=", value, "crttime");
            return (Criteria) this;
        }

        public Criteria andCrttimeLessThan(Date value) {
            addCriterion("CRTTIME <", value, "crttime");
            return (Criteria) this;
        }

        public Criteria andCrttimeLessThanOrEqualTo(Date value) {
            addCriterion("CRTTIME <=", value, "crttime");
            return (Criteria) this;
        }

        public Criteria andCrttimeIn(List<Date> values) {
            addCriterion("CRTTIME in", values, "crttime");
            return (Criteria) this;
        }

        public Criteria andCrttimeNotIn(List<Date> values) {
            addCriterion("CRTTIME not in", values, "crttime");
            return (Criteria) this;
        }

        public Criteria andCrttimeBetween(Date value1, Date value2) {
            addCriterion("CRTTIME between", value1, value2, "crttime");
            return (Criteria) this;
        }

        public Criteria andCrttimeNotBetween(Date value1, Date value2) {
            addCriterion("CRTTIME not between", value1, value2, "crttime");
            return (Criteria) this;
        }

        public Criteria andTolistIsNull() {
            addCriterion("TOLIST is null");
            return (Criteria) this;
        }

        public Criteria andTolistIsNotNull() {
            addCriterion("TOLIST is not null");
            return (Criteria) this;
        }

        public Criteria andTolistEqualTo(String value) {
            addCriterion("TOLIST =", value, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistNotEqualTo(String value) {
            addCriterion("TOLIST <>", value, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistGreaterThan(String value) {
            addCriterion("TOLIST >", value, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistGreaterThanOrEqualTo(String value) {
            addCriterion("TOLIST >=", value, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistLessThan(String value) {
            addCriterion("TOLIST <", value, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistLessThanOrEqualTo(String value) {
            addCriterion("TOLIST <=", value, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistLike(String value) {
            addCriterion("TOLIST like", value, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistNotLike(String value) {
            addCriterion("TOLIST not like", value, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistIn(List<String> values) {
            addCriterion("TOLIST in", values, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistNotIn(List<String> values) {
            addCriterion("TOLIST not in", values, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistBetween(String value1, String value2) {
            addCriterion("TOLIST between", value1, value2, "tolist");
            return (Criteria) this;
        }

        public Criteria andTolistNotBetween(String value1, String value2) {
            addCriterion("TOLIST not between", value1, value2, "tolist");
            return (Criteria) this;
        }

        public Criteria andFromlistIsNull() {
            addCriterion("FROMLIST is null");
            return (Criteria) this;
        }

        public Criteria andFromlistIsNotNull() {
            addCriterion("FROMLIST is not null");
            return (Criteria) this;
        }

        public Criteria andFromlistEqualTo(String value) {
            addCriterion("FROMLIST =", value, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistNotEqualTo(String value) {
            addCriterion("FROMLIST <>", value, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistGreaterThan(String value) {
            addCriterion("FROMLIST >", value, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistGreaterThanOrEqualTo(String value) {
            addCriterion("FROMLIST >=", value, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistLessThan(String value) {
            addCriterion("FROMLIST <", value, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistLessThanOrEqualTo(String value) {
            addCriterion("FROMLIST <=", value, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistLike(String value) {
            addCriterion("FROMLIST like", value, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistNotLike(String value) {
            addCriterion("FROMLIST not like", value, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistIn(List<String> values) {
            addCriterion("FROMLIST in", values, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistNotIn(List<String> values) {
            addCriterion("FROMLIST not in", values, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistBetween(String value1, String value2) {
            addCriterion("FROMLIST between", value1, value2, "fromlist");
            return (Criteria) this;
        }

        public Criteria andFromlistNotBetween(String value1, String value2) {
            addCriterion("FROMLIST not between", value1, value2, "fromlist");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("STATUS is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("STATUS is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("STATUS =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("STATUS <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("STATUS >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("STATUS >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("STATUS <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("STATUS <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("STATUS in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("STATUS not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("STATUS between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("STATUS not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andSenttimeIsNull() {
            addCriterion("SENTTIME is null");
            return (Criteria) this;
        }

        public Criteria andSenttimeIsNotNull() {
            addCriterion("SENTTIME is not null");
            return (Criteria) this;
        }

        public Criteria andSenttimeEqualTo(Date value) {
            addCriterion("SENTTIME =", value, "senttime");
            return (Criteria) this;
        }

        public Criteria andSenttimeNotEqualTo(Date value) {
            addCriterion("SENTTIME <>", value, "senttime");
            return (Criteria) this;
        }

        public Criteria andSenttimeGreaterThan(Date value) {
            addCriterion("SENTTIME >", value, "senttime");
            return (Criteria) this;
        }

        public Criteria andSenttimeGreaterThanOrEqualTo(Date value) {
            addCriterion("SENTTIME >=", value, "senttime");
            return (Criteria) this;
        }

        public Criteria andSenttimeLessThan(Date value) {
            addCriterion("SENTTIME <", value, "senttime");
            return (Criteria) this;
        }

        public Criteria andSenttimeLessThanOrEqualTo(Date value) {
            addCriterion("SENTTIME <=", value, "senttime");
            return (Criteria) this;
        }

        public Criteria andSenttimeIn(List<Date> values) {
            addCriterion("SENTTIME in", values, "senttime");
            return (Criteria) this;
        }

        public Criteria andSenttimeNotIn(List<Date> values) {
            addCriterion("SENTTIME not in", values, "senttime");
            return (Criteria) this;
        }

        public Criteria andSenttimeBetween(Date value1, Date value2) {
            addCriterion("SENTTIME between", value1, value2, "senttime");
            return (Criteria) this;
        }

        public Criteria andSenttimeNotBetween(Date value1, Date value2) {
            addCriterion("SENTTIME not between", value1, value2, "senttime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}